Skip to content

Refactor event ingestion into conversion + pipeline queues with MySQL source support - #21

Open
gengdy1545 wants to merge 13 commits into
AntiO2:masterfrom
gengdy1545:feature/mysqlSource
Open

Refactor event ingestion into conversion + pipeline queues with MySQL source support#21
gengdy1545 wants to merge 13 commits into
AntiO2:masterfrom
gengdy1545:feature/mysqlSource

Conversation

@gengdy1545

Copy link
Copy Markdown

Summary

  • Refactor sink ingestion so sources own protocol conversion and publish only canonical RowChangeEvent / TransactionMetadata into pipeline queues.
  • Replace the provider hierarchy with pipeline-owned BlockingBoundedQueue for backpressure and ordered delivery.
  • Add MySQL Debezium source support (adapter + config) alongside Postgres, and unify logging on Log4j2 to remove competing bindings.

Changes

Source conversion & pipelines

  • Move Kafka / Engine / Storage deserialization and Debezium envelope handling into conversion (JSON/Avro/Struct converters, envelope normalizer, source adapters).
  • Introduce TablePipeline / TransactionPipeline / TablePipelineManager so processors consume canonical events only.
  • Add KafkaRowSource / KafkaTransactionSource and rework PixelsDebeziumConsumer to convert at the source boundary.
  • Add MySQL source adapter and conf/pixels-sink.mysql.properties.

Provider removal

  • Remove EventProvider and per-source provider subclasses.
  • Pipelines own BlockingBoundedQueue for bounded, blocking handoff between sources and processors.
  • Update docs (overview, usage, configuration) to match the new architecture.

Logging

  • Standardize on Log4j2; exclude competing SLF4J/Log4j bindings in pom.xml.
  • Refresh log4j2.properties / jvm.conf and drop unused logging.properties.

Comment thread pom.xml
Comment thread src/main/java/io/pixelsdb/pixels/sink/source/engine/PixelsDebeziumConsumer.java Outdated
Comment thread src/test/java/io/pixelsdb/pixels/sink/util/TestDateUtil.java Outdated
return (dateToString);
}

public static String convertTimestampToString(Date date)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

连MySQL和PG确认下CDC能不能正确解析。我记得Debezium Date、Time、Timestamp,包括不同精度的时间,有点复杂。

@AntiO2

AntiO2 commented Jul 30, 2026

Copy link
Copy Markdown
Owner

还有测试一下Decimal的解析

@AntiO2

AntiO2 commented Jul 30, 2026

Copy link
Copy Markdown
Owner

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aa78cf9286

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants